אז למה להשתמש דווקא ב-laravel? ומה עוד אני אצטרך ללמוד בהמשך?
כל זאת, ועוד במדריך ה-1# שלי בפריימוורק laravel.
שלום לכולם!
אני פותח בזאת, בסדרת מדריכים על הפריימוורק laravel שאני מאוד אוהב!
ובמדריך היום, נדבר על:
● אז למה להשתמש דווקא ב-laravel? או - מה היתרונות?
● דברי סיום. או - הקדמה למדריכים הבאים בסדרה.
אז בואו נתחיל!
אז למה לי להשתמש דווקא ב-laravel?
התשובה טמונה בשאלה. למה לי באמת? בגלל העדפה אישית.
אני לא יכול להגיד לך ש-laravel הוא הפריימוורק הכי טוב, כמו שמישהו אחר לא יכול להגיד לך את זה על Yii או ZEND.
יש אנשים שיגידו שפריימוורק כזה או אחר טוב יותר מהשני, והם צודקים ב-100%.
כי איך אומרים? על טעם וריח - אין להתווכח! כל אחד והטעם שלו.
יש מי שיגיד שהוא אוהב פריימוורק פשוט, כמו codeigniter, ויש כאלה שאוהבים פרימוורק וותיק וטוב, כמו Yii או ZEND.
אבל בכל מקרה, ב-laravel עדיין יש דברים שהופכים אותו לפריימוורק הכי טוב שאני מכיר.
רוצים שאני אספר לכם מה?
אז ככה:
1. ה-routing שלו.
בכל פריימוורק שהשתמשתי עד עכשיו, היה קשה לי שם כל הקטע של ה-routing. מה זה routing אתם שואלים?
routing זה האפשרות שיש ברוב הפריימוורקים, שמאפשרת לנו לקבוע תבניות מוכנות מראש של לינקים באתר.
ואני אתן דוגמה.
אתם רוצים ליצור באתר שלכם מערכת משתמשים.
אין שום בעיה.
אתם יוצרים מחלקה שמטפלת במשתמשים, יוצרים כמובן אינטרפייס וכן הלאה.
עכשיו, אתם רוצים שכמישהו ייכנס ללינק הבא: www.example.com/user/UserName
הוא ייראה את הפרופיל של UserName. איך אתם עושים את זה?
אתם מגדירים route בצורה הבאה: (ככה זה ב-laravel)
<?php
Route::get('user/{name}', 'UserController@showProfile');
Route::get('user/{name}', 'UserController@showProfile');
כמו שניתן להבין, מה שנמצא בתוך הסוגריים של המתודה הסטטית "get", זה הלינק של ה-"user/UserName".
ומה שבפרמטר השני, זה הקונטרולר שאליו יופנה כל משתמש שייכנס לדף www.example.com/user/UserName.
וכמו שכנראה הבנתם כבר, מה שבא אחרי ה-@, זו המתודה שתטפל בבקשה.
מה ש-laravel מאפשרת לנו, זה לקחת את מה שנמצא בסוגריים המסולסלות, (name) ולהמיר אותו למשתנה באותו השם שניתן לשימוש בתוך הקונטרולר.
כמובן שיש עוד דרכים לקבוע משתנים בroute, אבל עליהם נלמד במדריכים הבאים.
2. מערכת הטמפלטים שלה.
בהרבה פרימוורקים קיימת האופציה הזו, אבל לדעתי ב-laravel זו מערכת הטמפלטים הכי טובה.
אז מה זה מערכת טמפלטים?
דמיינו לכם שאתם עובדים על פרוייקט גדול. הפייסבוק הבא.
יש לכם כמה מתכנתים, וכמה מעצבי צד-לקוח.
המעצב, שאין לו טיפת ידע ב-PHP או בתכנות בכלל, נכנס לקובץ ה-HTML, שכמובן ע"פ עיקרון ה-MVC נמצא בתיקיית views, ומה הוא רואה?
<ul>
<?php foreach($people as $p) : ?>
<li><?php echo $p; ?></li>
<?php endforeach; ?>
</ul>
<?php foreach($people as $p) : ?>
<li><?php echo $p; ?></li>
<?php endforeach; ?>
</ul>
ומה שעובר לו בראש זה בערך מה שעבר לכם בראש כשהתחלתם ללמוד OOP - מה לעזאזל המתכנת הזה רוצה ממני???
ועכשיו, תדמיינו שהוא ייראה את זה:
<ul>
@foreach($people as $p)
<li></li>
@endforeach
</ul>
@foreach($people as $p)
<li></li>
@endforeach
</ul>
עכשיו הוא יכול להתעסק בעיצוב, מבלי להפריע לכם, ומבלי לפתוח אין-סוף issues ב-github.
וסוף סוף, אתם יכולים להיות כמו מארק צוקרברג - להתחתן עם יפנית, ולנהל את הפרוייקט שלכם בשלווה.
3. מערכת validation (אימות)
בעזרת מערכת האימות, (validation) אתם יכולים לבדוק אם מה שקיבלתם מהטופס של ההרשמה / התחברות / צור קשר / או סתם "פרסם פוסט חדש" עומד בתנאים שלכם.
התנאים שלכם יכולים להיות - רק מספרים, באורך של כך-וכך תווים, רק אותיות גדולות, וכו'.
דמיינו לכם את המצב הבא:
אתם בונים טופס הרשמה לאתר, שמכיל 10 שדות.
אתם רוצים לבדוק את הקלט שבא מהמשתמש כדי ליצור משתמש חדש, או להציג הודעת שגיאה.
אז כדי לעשות את זה, אתם יוצרים עשרות perg_matchים, ועץ ענק של ifים,
ולבסוף, אחרי שסיימתם עם כל הבדיקות, סוף סוף הגיע הזמן ל........ elseים והודעות שגיאה כמובן!
ואז, אתם חוזרים מותשים מהמערכה עם ניצחון של 1:0 ל-PHP.
אז ל-laravel יש את הפתרון.
אז laravel ייצרה מחלקה מאוד מאוד מאוד נוחה וטובה, שמאפשרת אימות נתונים בצורה פשוטה:
<?php
$validator = Validator::make(
array(
'name' => 'Dayle',
'password' => 'lamepassword',
'email' => '[email protected]'
),
array(
'name' => 'required',
'password' => 'required|min:8',
'email' => 'required|email|unique:users'
)
);
$validator = Validator::make(
array(
'name' => 'Dayle',
'password' => 'lamepassword',
'email' => '[email protected]'
),
array(
'name' => 'required',
'password' => 'required|min:8',
'email' => 'required|email|unique:users'
)
);
וכמו שבטח הבנתם לבד, המערך הראשון, הוא רשימה של שדות הטופס, והערך שלהם (שאותו אתם משיגים בעזרת $_GET או $_POST),
והמפתח של כל ערך הוא ה-name שנתתם לשדה בטופס.
ובמערך השני, אתם קובעים את כללי האימות של הטופס, ו-laravel מכיל כמעט 40 כללים בילט-אין.
כלל האימות יכול להיות אורך הטקסט, אורך מינימלי/מקסימלי, שדה חובה, וכו'.
וכמובן שיש כללים שבודקים בבסיס הנתונים (במקרה שלנו - בטבלת ה-users) שהאימייל שהמשתמש מסר לנו לא קיים בבסיס נתונים.... וכו'.
וגם, אתם לא חייבים לעשות אימות לכל השדות בטופס, אלא רק לאלו שאתם רוצים.
אז זו בהחלט אפשרות שימושית.
דברי סיום
אז זה היה הפרק הראשון בסדרת המדריכים שלי על laravel.
ובפרקים הבאים נדבר עוד על:
● איך להתקין.
● הגדרת קונטרולרים, מתודות ומאפיינים.
● עוד על routing, ועל האפשרויות המתקדמות שלו.
● מודלים ו-viewים (כחלק ממודל ה-MVC).
● שגיאות ולוגים. (logs)
● שליחת אימייל.
● סאשנים, ועוגיות.
● עוד על טמפלטים.
● על טפסים, ואימותם.
● אבטחה.
● Helpers (עזרים).
● ועוד ועוד....
אז לילה טוב, ומקווה שאהבתם :)
(ומה אכפת לך? פרגן :)
תגובות לכתבה:
מעולה, תודה :)
ישר כוח, תודה ומחכה בקוצר לרוח למדריכים הבאים. מקווה שתמשיך את הסדרה עד הסוף כי זה באמת חסר בקהילה הישראלית לפי דעתי.
מוסבר באופן מצויין! כל הכבוד ותודה.
תודה רבה :)
עשה לי חשק להשתמש בזה, מקווה שתמשיך עם המדריכים
מדהים! גם לי עשה חשק להתחיל עם laravel. מחכה לשאר המדריכים :)
תודה רבה רבה!!! D=
התחלתי לעבוד עם laravel לפני כמה שבועות ובאמת פריימוורק מאוד נוח למתכנת.
כל הכבוד על היוזמה של כתיבת המדריכים,בהחלת יעזור לפיתוח הקהילה.
אני אשתדל לפרסם מדריך נוסף פעם או פעמיים בשבוע.... :)
יש לי שאלה
צריך להתקין את זה על השרת או שאפשר להשתמש בזה ככה כמו הפריימוורק הרגילים?
תודה רבה, מחכה למדריך הבא :)
@razand עברו יותר משבועיים מאז שפרסמת את השאלה הזאת. בכל מקרה, עדיף מאוחר מאשר לעולם לא. :-)
לארוול עובד עם Composer, ולכן יש צורך להתקין את Composer על השרת, להוריד את הגרסה האחרונה של לארוול (אפשר גם באמצעות Composer), ואז להשתמש בו כדי להתקין את כל הספריות שלארוול תלוי בהן.
http://laravel.com/docs/installation
@ArielSafari תודה רבה! :-)